home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / musictex / older-versions / musictex.507 / SLUR16.MF < prev    next >
Text File  |  1991-11-07  |  7KB  |  231 lines

  1. % Change of length into longueur for new modes.mf (Nicolas Brouard 4/11/91)
  2. input musicdef
  3. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  4. %                                                           %
  5. %            BOGEN UND (DE)CRESCENDO                        %
  6. %                                                           %
  7. %      (Phrasierungsbogen und Bogen der Steigung 0)         %
  8. %                                                           %
  9. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  10.  
  11. def drawslurs (expr st) =
  12.     save i, factor, longueur, height;
  13.     numeric i,  absp, longueur, height, factor;
  14.     factor:= 1/6;
  15.     for i= 0 upto 15:
  16.           longueur :=  (i+2)*nhw#;
  17.           height := 0 ;
  18.  
  19.           beginchar(i, longueur, height, 0);
  20.             clear;
  21.             z2r = (w,h);
  22.             z1l = origin;
  23.             absp := abs((-h,w));
  24.             if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
  25.             z3r = 1/2z2l+factor*(-h,w);
  26.             penpos1(thinwidth,90);
  27.             penpos2(thinwidth,90);
  28.             penpos3(5/12beamht,90);
  29.  %          currentpen := pencircle xscaled thinwidth yscaled beamht ;
  30.             pickup  pencircle scaled (1/16mm + blacker);
  31.             penstroke z1e..z3e..z2e; %statt dir 30
  32.           endchar;
  33.     endfor;
  34. enddef;
  35.  
  36. def drawslursneg (expr st) =
  37.     save i, factor, longueur, depth;
  38.     numeric i,  absp, longueur, depth, factor;
  39.     factor:= 1/6;
  40.     for i=0 upto 15:
  41.          longueur :=  (i+2)*nhw#;
  42.          depth := longueur*st ;
  43.  
  44.         beginchar(16+i, longueur, 0, depth);
  45.            clear;
  46.            z2l = (w,-d);
  47.            z1r = origin;
  48.            absp := abs((d,w));
  49.            if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
  50.            z3r = 1/2z2l+factor*(d,w);
  51.            penpos1(thinwidth,90);
  52.            penpos2(thinwidth,90);
  53.            penpos3(5/12beamht,90);
  54. %          currentpen := pencircle xscaled thinwidth yscaled beamht ;
  55.             pickup  pencircle scaled (1/16mm + blacker);
  56.            penstroke (z1e..z3e..z2e) rotatedaround(1/2z2r, 180);
  57.          endchar;
  58.     endfor;
  59. enddef;
  60.  
  61. def drawleftslur =
  62.     save i, longueur, height;
  63.     numeric i,  longueur, height;
  64.     longueur :=  9*nhw#;
  65.     for i = 1 upto 9:
  66.           height := (i+2)*1/2nhh# ;
  67.           beginchar(i-1+32, longueur, height, 0);
  68.             clear;
  69.             z2r = (w+4thinwidth,h);
  70.             z1l = origin;
  71.             penpos1(thinwidth,90);
  72.             penpos2(5/12beamht,90);
  73. %           currentpen := pencircle xscaled thinwidth yscaled beamht ;
  74.             pickup  pencircle scaled (1/16mm + blacker);
  75.             penstroke z1e..z2e{(2w,0)}; %statt dir 30
  76.           endchar;
  77.     endfor;
  78. enddef;
  79.  
  80. def drawrightslur =
  81.     save i,  longueur, height;
  82.     numeric i, longueur, height;
  83.     longueur :=  9*nhw#;
  84.     for i= 1 upto 9:
  85.           height := (i+2)*1/2nhh#;
  86.           beginchar(i-1+48, longueur, height, 0);
  87.             clear;
  88.             z1r = (0-4\thinwidth,h);
  89.             z2l = (w,0);
  90.             penpos2(thinwidth,90);
  91.             penpos1(5/12beamht,90);
  92. %           currentpen := pencircle xscaled thinwidth yscaled beamht ;
  93.             pickup  pencircle scaled (1/16mm + blacker);
  94.             penstroke z1e{right}..z2e; %statt dir 30
  95.           endchar;
  96.     endfor;
  97. enddef;
  98.  
  99. def drawleftslurneg  =
  100.     save i,  longueur, depth;
  101.     numeric i,   longueur, depth;
  102.     longueur :=  9*nhw#;
  103.     for i= 1 upto 9:
  104.           depth := (i+2)*1/2nhh# ;
  105.           beginchar(i-1+64, longueur, 0, depth);
  106.             clear;
  107.             z2l = (w+4thinwidth,-d);
  108.             z1r = origin;
  109.             penpos1(thinwidth,90);
  110.             penpos2(5/12beamht,90);
  111.             pickup  pencircle scaled (1/16mm + blacker);
  112.  %          currentpen := pencircle xscaled thinwidth yscaled beamht ;
  113.             penstroke z1e..z2e{(2w,0)}; %statt dir 30
  114.           endchar;
  115.     endfor;
  116. enddef;
  117.  
  118. def drawrightslurneg =
  119.     save i,  longueur, depth;
  120.     numeric i, longueur, depth;
  121.     longueur :=  9*nhw#;
  122.     for i= 1 upto 9:
  123.           depth := (i+2)*1/2nhh#;
  124.  
  125.           beginchar(i-1+80, longueur, 0, depth);
  126.             clear;
  127.             z1l = (0-4\thinwidth,-d);
  128.             z2r = (w,0);
  129.             penpos2(thinwidth,90);
  130.             penpos1(5/12beamht,90);
  131. %           currentpen := pencircle xscaled thinwidth yscaled beamht ;
  132.             pickup  pencircle scaled (1/16mm + blacker);
  133.             penstroke z1e{right}..z2e; %statt dir 30
  134.           endchar;
  135.     endfor;
  136. enddef;
  137.  
  138. %decrescendo und cresc.
  139. def drawcrescendo =
  140.     save i, height, longueur, depth;
  141.     numeric i, longueur, height, depth;
  142.     for i= 0 upto 15:
  143.           longueur :=  (i+1)*nhw#;
  144.           depth := 1/2nhh# ;
  145.           height := depth ;
  146.  
  147.           beginchar(i+96, longueur, height, depth);
  148.             clear;
  149.             z1 = origin;
  150.             z2l = (w,h);
  151.             z3r = (w,-d);
  152.             penpos2(1/16mm,90);
  153.             penpos1(1/16mm,90);
  154.             penpos3(1/16mm,90);
  155.             pickup  pencircle scaled (blacker);
  156.             penstrike z1e--z2e;
  157.             penstrike z1e--z3e;
  158.           endchar;
  159.     endfor;
  160. enddef;
  161.  
  162. def drawdecrescendo =
  163.     save i, height, longueur, depth;
  164.     numeric i, longueur, height, depth;
  165.     for i= 0 upto 15:
  166.           longueur :=  (i+1)*nhw#;
  167.           depth := 1/2nhh# ;
  168.           height := depth ;
  169.  
  170.           beginchar(i+112, longueur, height, depth);
  171.             clear;
  172.             z1l = (0,h);
  173.             z2 = (w,0);
  174.             z3r = (0,-d);
  175.             penpos2(1/16mm,90);
  176.             penpos1(1/16mm,90);
  177.             penpos3(1/16mm,90);
  178.             pickup  pencircle scaled (blacker);
  179.             penstrike z3e---z2e;
  180.             penstrike z1e---z2e;
  181. %label(1,2,3);
  182.           endchar;
  183.     endfor;
  184. enddef;
  185.  
  186. %%%%%%%%%%%%%%%%%%%
  187. % Bogen nach oben %
  188. %%%%%%%%%%%%%%%%%%%
  189.  
  190. drawslurs(0);
  191.  
  192. %%%%%%%%%%%%%%%%%%%%
  193. % Bogen nach unten %
  194. %%%%%%%%%%%%%%%%%%%%
  195.  
  196. drawslursneg(0);
  197.  
  198. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  199. % linge Halbboegen  nach oben %
  200. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  201.  
  202. drawleftslur;
  203.  
  204. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  205. % rechte Halbboegen  nach oben %
  206. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  207.  
  208. drawrightslur;
  209.  
  210. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  211. % linke Halbboegen  nach unten %
  212. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  213.  
  214. drawleftslurneg;
  215.  
  216. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  217. % rechte Halbboegen  nach unten %
  218. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  219.  
  220. drawrightslurneg;
  221.  
  222. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  223. % Crescendo und Decrescendo %
  224. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  225.  
  226. drawcrescendo;
  227. drawdecrescendo;
  228.  
  229.  
  230. end;
  231.